home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
et
/
et3_0-a1.lha
/
et3
/
src
/
DevBitmap.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-08-25
|
2KB
|
70 lines
#ifndef DevBitmap_First
#ifdef __GNUG__
//pragma once
#pragma interface
#endif
#define DevBitmap_First
#include "Types.h"
#include "Point.h"
#include "Ink.h"
class WindowPort;
class WindowColorMap;
class DevBitmap {
int refcnt;
public:
Point size;
u_short depth;
ColorMap *cmap;
protected:
DevBitmap(Point sz, u_short depth= 1);
DevBitmap(DevBitmap *dbm);
virtual ~DevBitmap();
public:
void Ref()
{ refcnt++; }
void Unref();
virtual int BytesPerLine();
virtual void SetPixel(u_int x, u_int y, u_long value);
virtual u_long GetPixel(u_int x, u_int y);
virtual void SetRGB(u_int x, u_int y, RGB *rgb);
virtual void GetRGB(u_int x, u_int y, RGB *rgb);
virtual u_long GetByte(u_int x, u_int y);
virtual void SetRow(int row, byte *rowdata, int rowlen, int bitsperpixel);
virtual RGB GetColormapEntry(int x);
virtual void SetColormapEntry(int x, RGB&);
virtual int GetColormapSize();
virtual void SetColormapSize(int);
virtual DevBitmap *DeepClone();
virtual void ReadData(IStream &is, int bitsperpixel, int pad);
virtual DevBitmap *DevAllocBitmap(Point s, u_short d);
virtual void DevBitBlt(int x, int y, int w, int h, int op, DevBitmap *s, int sx, int sy);
virtual DevBitmap *DevScaleBitmap(Point ss);
virtual void DevHalftone(WindowColorMap *wcm, DevBitmap *spr);
virtual void DevFloydSteinberg(WindowColorMap *wcm, DevBitmap *spr);
Point Size()
{ return size; }
int Depth()
{ return depth; }
int ShortsPerLine()
{ return ((size.x-1)/16+1)*depth; }
virtual void DevMapColors(DevBitmap *src, u_long *map);
virtual DevBitmap *PrepareBitmap(WindowPort *port, Point e, DevBitmap *mask);
DevBitmap *FindInCache(WindowColorMap *wcm, Point scale);
void AddToCache(DevBitmap *dbm, WindowColorMap *wcm);
void ExpandColors(WindowColorMap *wcm, DevBitmap *dbm, DevBitmap *mask);
void MapColors(WindowColorMap *wcm, DevBitmap *dbm, DevBitmap *mask);
void ReduceColors(WindowColorMap *wcm, DevBitmap *dbm, DevBitmap *mask);
};
#endif